#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
#include<stdlib.h>

const int num=10;
void worker()
{
  int cnt=20;
  while(cnt)
  {
    printf("child %d is running cnt:%d\n",getpid(),cnt);
    cnt--;
    sleep(1);
  }
}
int main()
{
  for(int i=0;i<num;i++)
  {
     pid_t id=fork();
     if(id<0)
     {
       break;
     }
     if(id==0)
     {
       worker();
       exit(0);
     }
     printf("father create child process,child pid:%d\n",id);
     sleep(2);
  }
  sleep(10);
  return 0;
}


//int main()
//{
//  printf("before fork: I am a process,pid:%d ppid:%d\n",getpid(),getppid());
//  sleep(10);
//  pid_t id=fork();
//  printf("after fork: I am a process,pid:%d ppid:%d return id:%d\n",getpid(),getppid(),id);
//  sleep(10);
//  return 0;
//}
////int main()
//{
// printf("self pid: %d\n",getpid());
// printf("modify directory before!\n");
// sleep(40);
// chdir("/home/shuju/Linux");
// printf("modify directory after!\n");
// sleep(20);
// FILE* pf=fopen("data.txt","w");
// if(pf==NULL)
// {
//   return 1;
// }
// fclose(pf);
// printf("data.txt existed!\n");
// sleep(25);
//
//  return 0;
//}
////int main()
//{
//  pid_t fid=getppid();
//  pid_t id=getpid();
//  while(1)
//  {
//    printf("I am a process pid:%d ppid:%d\n",id,fid);
//    sleep(1);
//  }
//  return 0;
//}
